export interface CateGoryGoods {
  id: string
  name: string
  desc: string
  price: string
  picture: string
  disCount: string | number
  orderNum: string | number
}

export interface BrandType {
  id: string
  name: string
  nameEn: string
  desc: string
  logo: string
  picture: string
  place: string
  type?: string
}

export interface CateGoryList {
  id?: string
  name?: string
  picture?: string
  open?: boolean
  brands?: BrandType[]
  children?: CateGoryList[]
  goods?: CateGoryGoods[]
}

export interface BannerType {
  id: string
  imgUrl: string
  hrefUrl: string
  type: string
}

export interface NewType {
  id: string
  name: string
  price: string
  picture: string
  desc: string
  orderNum: string
  discount: string | number
  tag: string
}

export interface HotType {
  id: string
  title: string
  alt: string
  picture: string
}

export interface ProductChildren {
  id: string
  name: string
  layer: number
  parent: ProductChildren
}

export interface ProductType {
  id: string
  name: string
  picture: string
  saleInfo: string
  children: ProductChildren[]
  goods: NewType[]
}

export interface SpecialType {
  id: string
  title: string
  classificationId: string
  collectNum: number
  cover: string
  createTime: string
  creator: string
  detailsUrl: string
  isDelete: number
  lowestPrice: number
  replyNum: number
  updateTime: string
  viewNum: number
  summary: string
}

export interface CateGoryTypeChildren {
  id: string
  name: string
  picture: string
  goods: CateGoryGoods[]
}

export interface CateGoryType {
  id: string
  name: string
  children: CateGoryTypeChildren[]
}

export interface FilterType {
  id: string
  name: string
  parentId: string
  parentName: string
  picture: string
  selectedBrand: string
  saleProperties: NameType[]
  brands: BrandType[]
  categories: ProductChildren[]
  goods: CateGoryGoods[]
}

export interface NameType {
  id: string
  name: string
  selectedProp: string
  properties?: NameType[]
}

export interface ParamsType {
  brandId?: null | string
  categoryId?: string
  inventory?: boolean
  onlyDiscount?: boolean
  page?: number
  pageSize?: number
  sortField?: string
  sortMethod?: string
  attr?: AttrType[]
}

export interface AttrType {
  groupName: string
  propertyName: string
}

export interface SubCategoryGoods {
  counts: number
  page: number
  pageSize: number
  pages: number
  items: CateGoryGoods[]
}
